package hu.bme.mit.androtext.androdata.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import hu.bme.mit.androtext.androdata.services.AndroDataDslGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalAndroDataDslParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'entity'", "'extends'", "'{'", "'}'", "':'", "'import'", "'.'", "'.*'", "'String'", "'float'", "'boolean'", "'int'"
    };
    public static final int RULE_ID=4;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=6;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalAndroDataDslParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalAndroDataDslParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalAndroDataDslParser.tokenNames; }
    public String getGrammarFileName() { return "../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g"; }



     	private AndroDataDslGrammarAccess grammarAccess;
     	
        public InternalAndroDataDslParser(TokenStream input, AndroDataDslGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "AndroDataModelRoot";	
       	}
       	
       	@Override
       	protected AndroDataDslGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleAndroDataModelRoot"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:68:1: entryRuleAndroDataModelRoot returns [EObject current=null] : iv_ruleAndroDataModelRoot= ruleAndroDataModelRoot EOF ;
    public final EObject entryRuleAndroDataModelRoot() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAndroDataModelRoot = null;


        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:69:2: (iv_ruleAndroDataModelRoot= ruleAndroDataModelRoot EOF )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:70:2: iv_ruleAndroDataModelRoot= ruleAndroDataModelRoot EOF
            {
             newCompositeNode(grammarAccess.getAndroDataModelRootRule()); 
            pushFollow(FOLLOW_ruleAndroDataModelRoot_in_entryRuleAndroDataModelRoot75);
            iv_ruleAndroDataModelRoot=ruleAndroDataModelRoot();

            state._fsp--;

             current =iv_ruleAndroDataModelRoot; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAndroDataModelRoot85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAndroDataModelRoot"


    // $ANTLR start "ruleAndroDataModelRoot"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:77:1: ruleAndroDataModelRoot returns [EObject current=null] : (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_imports_2_0= ruleImport ) )* ( (lv_entities_3_0= ruleEntity ) )* ) ;
    public final EObject ruleAndroDataModelRoot() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        AntlrDatatypeRuleToken lv_name_1_0 = null;

        EObject lv_imports_2_0 = null;

        EObject lv_entities_3_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:80:28: ( (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_imports_2_0= ruleImport ) )* ( (lv_entities_3_0= ruleEntity ) )* ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:81:1: (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_imports_2_0= ruleImport ) )* ( (lv_entities_3_0= ruleEntity ) )* )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:81:1: (otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_imports_2_0= ruleImport ) )* ( (lv_entities_3_0= ruleEntity ) )* )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:81:3: otherlv_0= 'package' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_imports_2_0= ruleImport ) )* ( (lv_entities_3_0= ruleEntity ) )*
            {
            otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleAndroDataModelRoot122); 

                	newLeafNode(otherlv_0, grammarAccess.getAndroDataModelRootAccess().getPackageKeyword_0());
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:85:1: ( (lv_name_1_0= ruleQualifiedName ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:86:1: (lv_name_1_0= ruleQualifiedName )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:86:1: (lv_name_1_0= ruleQualifiedName )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:87:3: lv_name_1_0= ruleQualifiedName
            {
             
            	        newCompositeNode(grammarAccess.getAndroDataModelRootAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleQualifiedName_in_ruleAndroDataModelRoot143);
            lv_name_1_0=ruleQualifiedName();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getAndroDataModelRootRule());
            	        }
                   		set(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"QualifiedName");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:103:2: ( (lv_imports_2_0= ruleImport ) )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==17) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:104:1: (lv_imports_2_0= ruleImport )
            	    {
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:104:1: (lv_imports_2_0= ruleImport )
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:105:3: lv_imports_2_0= ruleImport
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAndroDataModelRootAccess().getImportsImportParserRuleCall_2_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleImport_in_ruleAndroDataModelRoot164);
            	    lv_imports_2_0=ruleImport();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAndroDataModelRootRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"imports",
            	            		lv_imports_2_0, 
            	            		"Import");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:121:3: ( (lv_entities_3_0= ruleEntity ) )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==12) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:122:1: (lv_entities_3_0= ruleEntity )
            	    {
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:122:1: (lv_entities_3_0= ruleEntity )
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:123:3: lv_entities_3_0= ruleEntity
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAndroDataModelRootAccess().getEntitiesEntityParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleEntity_in_ruleAndroDataModelRoot186);
            	    lv_entities_3_0=ruleEntity();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAndroDataModelRootRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"entities",
            	            		lv_entities_3_0, 
            	            		"Entity");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAndroDataModelRoot"


    // $ANTLR start "entryRuleEntity"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:147:1: entryRuleEntity returns [EObject current=null] : iv_ruleEntity= ruleEntity EOF ;
    public final EObject entryRuleEntity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleEntity = null;


        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:148:2: (iv_ruleEntity= ruleEntity EOF )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:149:2: iv_ruleEntity= ruleEntity EOF
            {
             newCompositeNode(grammarAccess.getEntityRule()); 
            pushFollow(FOLLOW_ruleEntity_in_entryRuleEntity223);
            iv_ruleEntity=ruleEntity();

            state._fsp--;

             current =iv_ruleEntity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntity233); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleEntity"


    // $ANTLR start "ruleEntity"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:156:1: ruleEntity returns [EObject current=null] : (otherlv_0= 'entity' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_4= '{' ( (lv_features_5_0= ruleFeature ) )* otherlv_6= '}' ) ;
    public final EObject ruleEntity() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        EObject lv_features_5_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:159:28: ( (otherlv_0= 'entity' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_4= '{' ( (lv_features_5_0= ruleFeature ) )* otherlv_6= '}' ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:160:1: (otherlv_0= 'entity' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_4= '{' ( (lv_features_5_0= ruleFeature ) )* otherlv_6= '}' )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:160:1: (otherlv_0= 'entity' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_4= '{' ( (lv_features_5_0= ruleFeature ) )* otherlv_6= '}' )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:160:3: otherlv_0= 'entity' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_4= '{' ( (lv_features_5_0= ruleFeature ) )* otherlv_6= '}'
            {
            otherlv_0=(Token)match(input,12,FOLLOW_12_in_ruleEntity270); 

                	newLeafNode(otherlv_0, grammarAccess.getEntityAccess().getEntityKeyword_0());
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:164:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:165:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:165:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:166:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEntity287); 

            			newLeafNode(lv_name_1_0, grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getEntityRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:182:2: (otherlv_2= 'extends' ( ( ruleQualifiedName ) ) )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==13) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:182:4: otherlv_2= 'extends' ( ( ruleQualifiedName ) )
                    {
                    otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleEntity305); 

                        	newLeafNode(otherlv_2, grammarAccess.getEntityAccess().getExtendsKeyword_2_0());
                        
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:186:1: ( ( ruleQualifiedName ) )
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:187:1: ( ruleQualifiedName )
                    {
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:187:1: ( ruleQualifiedName )
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:188:3: ruleQualifiedName
                    {

                    			if (current==null) {
                    	            current = createModelElement(grammarAccess.getEntityRule());
                    	        }
                            
                     
                    	        newCompositeNode(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleQualifiedName_in_ruleEntity328);
                    ruleQualifiedName();

                    state._fsp--;

                     
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleEntity342); 

                	newLeafNode(otherlv_4, grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3());
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:205:1: ( (lv_features_5_0= ruleFeature ) )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==RULE_ID) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:206:1: (lv_features_5_0= ruleFeature )
            	    {
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:206:1: (lv_features_5_0= ruleFeature )
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:207:3: lv_features_5_0= ruleFeature
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getEntityAccess().getFeaturesFeatureParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleFeature_in_ruleEntity363);
            	    lv_features_5_0=ruleFeature();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getEntityRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"features",
            	            		lv_features_5_0, 
            	            		"Feature");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);

            otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleEntity376); 

                	newLeafNode(otherlv_6, grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleEntity"


    // $ANTLR start "entryRuleFeature"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:235:1: entryRuleFeature returns [EObject current=null] : iv_ruleFeature= ruleFeature EOF ;
    public final EObject entryRuleFeature() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFeature = null;


        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:236:2: (iv_ruleFeature= ruleFeature EOF )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:237:2: iv_ruleFeature= ruleFeature EOF
            {
             newCompositeNode(grammarAccess.getFeatureRule()); 
            pushFollow(FOLLOW_ruleFeature_in_entryRuleFeature412);
            iv_ruleFeature=ruleFeature();

            state._fsp--;

             current =iv_ruleFeature; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFeature422); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFeature"


    // $ANTLR start "ruleFeature"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:244:1: ruleFeature returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (lv_type_2_0= ruleDataTypes ) ) ) ;
    public final EObject ruleFeature() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token otherlv_1=null;
        Enumerator lv_type_2_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:247:28: ( ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (lv_type_2_0= ruleDataTypes ) ) ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:248:1: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (lv_type_2_0= ruleDataTypes ) ) )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:248:1: ( ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (lv_type_2_0= ruleDataTypes ) ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:248:2: ( (lv_name_0_0= RULE_ID ) ) otherlv_1= ':' ( (lv_type_2_0= ruleDataTypes ) )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:248:2: ( (lv_name_0_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:249:1: (lv_name_0_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:249:1: (lv_name_0_0= RULE_ID )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:250:3: lv_name_0_0= RULE_ID
            {
            lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFeature464); 

            			newLeafNode(lv_name_0_0, grammarAccess.getFeatureAccess().getNameIDTerminalRuleCall_0_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getFeatureRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_0_0, 
                    		"ID");
            	    

            }


            }

            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleFeature481); 

                	newLeafNode(otherlv_1, grammarAccess.getFeatureAccess().getColonKeyword_1());
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:270:1: ( (lv_type_2_0= ruleDataTypes ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:271:1: (lv_type_2_0= ruleDataTypes )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:271:1: (lv_type_2_0= ruleDataTypes )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:272:3: lv_type_2_0= ruleDataTypes
            {
             
            	        newCompositeNode(grammarAccess.getFeatureAccess().getTypeDataTypesEnumRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleDataTypes_in_ruleFeature502);
            lv_type_2_0=ruleDataTypes();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getFeatureRule());
            	        }
                   		set(
                   			current, 
                   			"type",
                    		lv_type_2_0, 
                    		"DataTypes");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFeature"


    // $ANTLR start "entryRuleImport"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:296:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ;
    public final EObject entryRuleImport() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleImport = null;


        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:297:2: (iv_ruleImport= ruleImport EOF )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:298:2: iv_ruleImport= ruleImport EOF
            {
             newCompositeNode(grammarAccess.getImportRule()); 
            pushFollow(FOLLOW_ruleImport_in_entryRuleImport538);
            iv_ruleImport=ruleImport();

            state._fsp--;

             current =iv_ruleImport; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImport548); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleImport"


    // $ANTLR start "ruleImport"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:305:1: ruleImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) ) ;
    public final EObject ruleImport() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:308:28: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:309:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:309:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:309:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) )
            {
            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleImport585); 

                	newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0());
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:313:1: ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:314:1: (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:314:1: (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:315:3: lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard
            {
             
            	        newCompositeNode(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_ruleImport606);
            lv_importedNamespace_1_0=ruleQualifiedNameWithWildCard();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getImportRule());
            	        }
                   		set(
                   			current, 
                   			"importedNamespace",
                    		lv_importedNamespace_1_0, 
                    		"QualifiedNameWithWildCard");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleImport"


    // $ANTLR start "entryRuleQualifiedName"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:339:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
    public final String entryRuleQualifiedName() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleQualifiedName = null;


        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:340:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:341:2: iv_ruleQualifiedName= ruleQualifiedName EOF
            {
             newCompositeNode(grammarAccess.getQualifiedNameRule()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName643);
            iv_ruleQualifiedName=ruleQualifiedName();

            state._fsp--;

             current =iv_ruleQualifiedName.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName654); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleQualifiedName"


    // $ANTLR start "ruleQualifiedName"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:348:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
    public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_ID_0=null;
        Token kw=null;
        Token this_ID_2=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:351:28: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:352:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:352:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:352:6: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
            {
            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQualifiedName694); 

            		current.merge(this_ID_0);
                
             
                newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:359:1: (kw= '.' this_ID_2= RULE_ID )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==18) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:360:2: kw= '.' this_ID_2= RULE_ID
            	    {
            	    kw=(Token)match(input,18,FOLLOW_18_in_ruleQualifiedName713); 

            	            current.merge(kw);
            	            newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            	        
            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQualifiedName728); 

            	    		current.merge(this_ID_2);
            	        
            	     
            	        newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleQualifiedName"


    // $ANTLR start "entryRuleQualifiedNameWithWildCard"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:380:1: entryRuleQualifiedNameWithWildCard returns [String current=null] : iv_ruleQualifiedNameWithWildCard= ruleQualifiedNameWithWildCard EOF ;
    public final String entryRuleQualifiedNameWithWildCard() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleQualifiedNameWithWildCard = null;


        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:381:2: (iv_ruleQualifiedNameWithWildCard= ruleQualifiedNameWithWildCard EOF )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:382:2: iv_ruleQualifiedNameWithWildCard= ruleQualifiedNameWithWildCard EOF
            {
             newCompositeNode(grammarAccess.getQualifiedNameWithWildCardRule()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard776);
            iv_ruleQualifiedNameWithWildCard=ruleQualifiedNameWithWildCard();

            state._fsp--;

             current =iv_ruleQualifiedNameWithWildCard.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard787); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleQualifiedNameWithWildCard"


    // $ANTLR start "ruleQualifiedNameWithWildCard"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:389:1: ruleQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? ) ;
    public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildCard() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;
        AntlrDatatypeRuleToken this_QualifiedName_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:392:28: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:393:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:393:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:394:5: this_QualifiedName_0= ruleQualifiedName (kw= '.*' )?
            {
             
                    newCompositeNode(grammarAccess.getQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleQualifiedName_in_ruleQualifiedNameWithWildCard834);
            this_QualifiedName_0=ruleQualifiedName();

            state._fsp--;


            		current.merge(this_QualifiedName_0);
                
             
                    afterParserOrEnumRuleCall();
                
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:404:1: (kw= '.*' )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==19) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:405:2: kw= '.*'
                    {
                    kw=(Token)match(input,19,FOLLOW_19_in_ruleQualifiedNameWithWildCard853); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getQualifiedNameWithWildCardAccess().getFullStopAsteriskKeyword_1()); 
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleQualifiedNameWithWildCard"


    // $ANTLR start "ruleDataTypes"
    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:418:1: ruleDataTypes returns [Enumerator current=null] : ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'float' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'int' ) ) ;
    public final Enumerator ruleDataTypes() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;

         enterRule(); 
        try {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:420:28: ( ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'float' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'int' ) ) )
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:421:1: ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'float' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'int' ) )
            {
            // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:421:1: ( (enumLiteral_0= 'String' ) | (enumLiteral_1= 'float' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'int' ) )
            int alt7=4;
            switch ( input.LA(1) ) {
            case 20:
                {
                alt7=1;
                }
                break;
            case 21:
                {
                alt7=2;
                }
                break;
            case 22:
                {
                alt7=3;
                }
                break;
            case 23:
                {
                alt7=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }

            switch (alt7) {
                case 1 :
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:421:2: (enumLiteral_0= 'String' )
                    {
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:421:2: (enumLiteral_0= 'String' )
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:421:4: enumLiteral_0= 'String'
                    {
                    enumLiteral_0=(Token)match(input,20,FOLLOW_20_in_ruleDataTypes909); 

                            current = grammarAccess.getDataTypesAccess().getSTRINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getDataTypesAccess().getSTRINGEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:427:6: (enumLiteral_1= 'float' )
                    {
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:427:6: (enumLiteral_1= 'float' )
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:427:8: enumLiteral_1= 'float'
                    {
                    enumLiteral_1=(Token)match(input,21,FOLLOW_21_in_ruleDataTypes926); 

                            current = grammarAccess.getDataTypesAccess().getFLOATEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getDataTypesAccess().getFLOATEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:433:6: (enumLiteral_2= 'boolean' )
                    {
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:433:6: (enumLiteral_2= 'boolean' )
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:433:8: enumLiteral_2= 'boolean'
                    {
                    enumLiteral_2=(Token)match(input,22,FOLLOW_22_in_ruleDataTypes943); 

                            current = grammarAccess.getDataTypesAccess().getBOOLEANEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getDataTypesAccess().getBOOLEANEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:439:6: (enumLiteral_3= 'int' )
                    {
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:439:6: (enumLiteral_3= 'int' )
                    // ../hu.bme.mit.androtext.androdata/src-gen/hu/bme/mit/androtext/androdata/parser/antlr/internal/InternalAndroDataDsl.g:439:8: enumLiteral_3= 'int'
                    {
                    enumLiteral_3=(Token)match(input,23,FOLLOW_23_in_ruleDataTypes960); 

                            current = grammarAccess.getDataTypesAccess().getINTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getDataTypesAccess().getINTEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDataTypes"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleAndroDataModelRoot_in_entryRuleAndroDataModelRoot75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAndroDataModelRoot85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_ruleAndroDataModelRoot122 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_ruleAndroDataModelRoot143 = new BitSet(new long[]{0x0000000000021002L});
    public static final BitSet FOLLOW_ruleImport_in_ruleAndroDataModelRoot164 = new BitSet(new long[]{0x0000000000021002L});
    public static final BitSet FOLLOW_ruleEntity_in_ruleAndroDataModelRoot186 = new BitSet(new long[]{0x0000000000001002L});
    public static final BitSet FOLLOW_ruleEntity_in_entryRuleEntity223 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntity233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_ruleEntity270 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleEntity287 = new BitSet(new long[]{0x0000000000006000L});
    public static final BitSet FOLLOW_13_in_ruleEntity305 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_ruleEntity328 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleEntity342 = new BitSet(new long[]{0x0000000000008010L});
    public static final BitSet FOLLOW_ruleFeature_in_ruleEntity363 = new BitSet(new long[]{0x0000000000008010L});
    public static final BitSet FOLLOW_15_in_ruleEntity376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFeature_in_entryRuleFeature412 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFeature422 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleFeature464 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleFeature481 = new BitSet(new long[]{0x0000000000F00000L});
    public static final BitSet FOLLOW_ruleDataTypes_in_ruleFeature502 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport538 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImport548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_ruleImport585 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_ruleImport606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName643 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName654 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleQualifiedName694 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_18_in_ruleQualifiedName713 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleQualifiedName728 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard776 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_ruleQualifiedNameWithWildCard834 = new BitSet(new long[]{0x0000000000080002L});
    public static final BitSet FOLLOW_19_in_ruleQualifiedNameWithWildCard853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_ruleDataTypes909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_ruleDataTypes926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_ruleDataTypes943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_ruleDataTypes960 = new BitSet(new long[]{0x0000000000000002L});

}